// 对axios进行二次封装
import axios from "axios"
// 引入进度条
import nprogress from "nprogress"
// start: 进度条开始  done：进度条结束
// 引入 detail 下面的uuid
import store from '@/store'

// 引入nprogress样式
import 'nprogress/nprogress.css'

// require 就是axios 只是配置一下
let requests = axios.create({
  // 基础路径在发送请求时，路径会出现api
  baseURL: "/api",
  // 代表请求超时时间为5000
  timeout: 5000,  
})

// 请求拦截器：再发送之前做些事情
requests.interceptors.request.use(config => {
  // config配置对象，对象里面有一个属性，headers
  // console.log(store.state.detail.uuid);
  if (store.state.detail.uuid) {
    config.headers.userTempId = store.state.detail.uuid
  }
  // if (store.state.loginAndRegister.token) {
  //   config.headers.token = store.state.loginAndRrgister.token
  // }
  // 如果有 token 就带上
  config.headers.token = localStorage.getItem('token') ? localStorage.getItem('token') : ''
  // 进度条开始
  nprogress.start()
  return config
}) 

// 响应拦截器
requests.interceptors.response.use(res => {

  // 进度条结束
  nprogress.done()
  return res.data
}, err => {
  // 响应失败回调函数
  return Promise.reject(new Error(err))
})

export default requests